home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 031-040 / amok32 / modlist1.3 / intuition.def next >
Text File  |  1993-11-04  |  25KB  |  970 lines

  1. DEFINITION MODULE Intuition {"intuition.library",33};
  2.  
  3. FROM SYSTEM IMPORT
  4.  ADDRESS,BITSET,BYTE,CAST,LONGSET;
  5. FROM Exec IMPORT
  6.  Byte,Interrupt,IOStdReq,Library,List,MemReqSet,Message,
  7.  MsgPortPtr,SignalSemaphore,UByte;
  8. FROM Graphics IMPORT
  9.  jam2,BitMap,BitMapPtr,ClipRect,DrawModeSet,GfxBasePtr,
  10.  LayerInfo,LayerPtr,RastPort,RastPortPtr,RegionPtr,
  11.  SimpleSpritePtr,TextAttr,TextAttrPtr,TextFontPtr,TmpRas,
  12.  View,ViewModeSet,ViewPort,ViewPortPtr,ViewPtr;
  13. FROM Timer IMPORT
  14.  IOTimer,TimeVal;
  15. FROM InputEvent IMPORT
  16.  lButton,rButton,upPrefix,InputEvent,InputEventPtr,
  17.  Qualifiers,QualifierSet;
  18. FROM KeyMap IMPORT
  19.  KeyMapPtr;
  20.  
  21. TYPE
  22.  BorderPtr=POINTER TO Border;
  23.  GadgetPtr=POINTER TO Gadget;
  24.  ImagePtr=POINTER TO Image;
  25.  IntuiMessagePtr=POINTER TO IntuiMessage;
  26.  IntuiTextPtr=POINTER TO IntuiText;
  27.  MenuItemPtr=POINTER TO MenuItem;
  28.  MenuPtr=POINTER TO Menu;
  29.  PreferencesPtr=POINTER TO Preferences;
  30.  PropInfoPtr=POINTER TO PropInfo;
  31.  RememberPtr=POINTER TO Remember;
  32.  RequesterPtr=POINTER TO Requester;
  33.  ScreenPtr=POINTER TO Screen;
  34.  StringInfoPtr=POINTER TO StringInfo;
  35.  WindowPtr=POINTER TO Window;
  36.  
  37. CONST
  38.  menuEnabled=0;
  39.  miDrawn=8;
  40.  
  41. TYPE
  42.  Menu=RECORD
  43.   nextMenu:MenuPtr;
  44.   leftEdge:INTEGER;
  45.   topEdge:INTEGER;
  46.   width:INTEGER;
  47.   height:INTEGER;
  48.   flags:BITSET;
  49.   menuName:ADDRESS;
  50.   firstItem:MenuItemPtr;
  51.   jazzX:INTEGER;
  52.   jazzY:INTEGER;
  53.   beatX:INTEGER;
  54.   beatY:INTEGER;
  55.  END;
  56.  MenuItemFlags=(
  57.   checkIt,itemText,commSeq,menuToggle,itemEnabled,mif5,
  58.   highComp,highBox,checked,mif9,mif10,mif11,isDrawn,
  59.   highItem,menuToggled
  60.  );
  61.  MenuItemFlagSet=SET OF MenuItemFlags;
  62.  
  63. CONST
  64.  highNone=MenuItemFlagSet{highBox,highComp};
  65.  checkWidth=19;
  66.  commWidth=27;
  67.  lowCheckWidth=13;
  68.  lowCommWidth=16;
  69.  
  70. TYPE
  71.  MenuItem=RECORD
  72.   nextItem:MenuItemPtr;
  73.   leftEdge:INTEGER;
  74.   topEdge:INTEGER;
  75.   width:INTEGER;
  76.   height:INTEGER;
  77.   flags:MenuItemFlagSet;
  78.   mutualExclude:LONGSET;
  79.   itemFill:ADDRESS;
  80.   selectFill:ADDRESS;
  81.   command:CHAR;
  82.   subItem:MenuItemPtr;
  83.   nextSelect:CARDINAL;
  84.  END;
  85.  RequesterFlags=(
  86.   pointRel,preDrawn,noisyReq,rf3,rf4,rf5,rf6,rf7,rf8,rf9,
  87.   rf10,rf11,reqOffWindow,reqActive,sysRequest,deferRefresh
  88.  );
  89.  RequesterFlagSet=SET OF RequesterFlags;
  90.  Requester=RECORD
  91.   olderRequest:RequesterPtr;
  92.   leftEdge:INTEGER;
  93.   topEdge:INTEGER;
  94.   width:INTEGER;
  95.   height:INTEGER;
  96.   relLeft:INTEGER;
  97.   relTop:INTEGER;
  98.   reqGadget:GadgetPtr;
  99.   reqBorder:BorderPtr;
  100.   reqText:IntuiTextPtr;
  101.   flags:RequesterFlagSet;
  102.   backFill:UByte;
  103.   reqLayer:LayerPtr;
  104.   reqPad1:ARRAY [0..31] OF BYTE;
  105.   imageBMap:BitMapPtr;
  106.   rWindow:WindowPtr;
  107.   reqPad2:ARRAY [0..35] OF BYTE;
  108.  END;
  109.  GadgetFlags=(
  110.   gadgHBox,gadgHImage,gadgImage,gRelBottom,gRelRight,
  111.   gRelWidth,gRelHeight,selected,gadgDisabled
  112.  );
  113.  GadgetFlagSet=SET OF GadgetFlags;
  114.  ActivationFlags=(
  115.   relVerify,gadgImmediate,endGadget,followMouse,rightBorder,
  116.   leftBorder,topBorder,bottomBorder,toggleSelect,stringCenter,
  117.   stringRight,longint,altKeyMap,boolExtend
  118.  );
  119.  ActivationFlagSet=SET OF ActivationFlags;
  120.  
  121. CONST
  122.  gadgHighbits=CAST(GadgetFlagSet,03H);
  123.  gadgHNone=GadgetFlagSet{gadgHBox,gadgHImage};
  124.  boolGadget=0001H;
  125.  gadget0002=0002H;
  126.  propGadget=0003H;
  127.  strGadget=0004H;
  128.  sizing=0010H;
  129.  wDragging=0020H;
  130.  sDragging=0030H;
  131.  wUpFront=0040H;
  132.  sUpFront=0050H;
  133.  wDownBack=0060H;
  134.  sDownBack=0070H;
  135.  close=0080H;
  136.  reqGadget=1000H;
  137.  gzzGadget=2000H;
  138.  scrGadget=4000H;
  139.  sysGadget=8000H;
  140.  gadgetType=CAST(BITSET,0FC00H);
  141.  
  142. TYPE
  143.  Gadget=RECORD
  144.   nextGadget:GadgetPtr;
  145.   leftEdge:INTEGER;
  146.   topEdge:INTEGER;
  147.   width:INTEGER;
  148.   height:INTEGER;
  149.   flags:GadgetFlagSet;
  150.   activation:ActivationFlagSet;
  151.   gadgetType:CARDINAL;
  152.   gadgetRender:ADDRESS;
  153.   selectRender:ADDRESS;
  154.   gadgetText:IntuiTextPtr;
  155.   mutualExclude:LONGSET;
  156.   specialInfo:ADDRESS;
  157.   gadgetID:INTEGER;
  158.   userData:ADDRESS;
  159.  END;
  160.  
  161. CONST
  162.  boolMask=1;
  163.  
  164. TYPE
  165.  BoolInfo=RECORD
  166.   flags:BITSET;
  167.   mask:ADDRESS;
  168.   reserved:LONGCARD;
  169.  END;
  170.  PropInfoFlags=(
  171.   autoKnob,freeHoriz,freeVert,propBorderless,pf4,pf5,pf6,pf7,
  172.   knobHit
  173.  );
  174.  PropInfoFlagSet=SET OF PropInfoFlags;
  175.  
  176. CONST
  177.  knobVmin=4;
  178.  knobHmin=6;
  179.  maxBody=0FFFFH;
  180.  maxPot=0FFFFH;
  181.  
  182. TYPE
  183.  PropInfo=RECORD
  184.   flags:PropInfoFlagSet;
  185.   horizPot:CARDINAL;
  186.   vertPot:CARDINAL;
  187.   horizBody:CARDINAL;
  188.   vertBody:CARDINAL;
  189.   cWidth:CARDINAL;
  190.   cHeight:CARDINAL;
  191.   hPotRes:CARDINAL;
  192.   vPotRes:CARDINAL;
  193.   leftBorder:CARDINAL;
  194.   topBorder:CARDINAL;
  195.  END;
  196.  
  197.  StringInfo=RECORD
  198.   buffer:ADDRESS;
  199.   undoBuffer:ADDRESS;
  200.   bufferPos:INTEGER;
  201.   maxChars:INTEGER;
  202.   dispPos:INTEGER;
  203.   undoPos:INTEGER;
  204.   numChars:INTEGER;
  205.   dispCount:INTEGER;
  206.   cLeft:INTEGER;
  207.   cTop:INTEGER;
  208.   layerPtr:LayerPtr;
  209.   longInt:LONGINT;
  210.   altKeyMap:KeyMapPtr;
  211.  END;
  212.  
  213. CONST
  214.  autoFrontPen=0;
  215.  autoBackPen=1;
  216.  autoDrawMode=jam2;
  217.  autoLeftEdge=6;
  218.  autoTopEdge=3;
  219.  autoITextFont=NIL;
  220.  autoNextText=NIL;
  221. TYPE
  222.  IntuiText=RECORD
  223.   frontPen:UByte;
  224.   backPen:UByte;
  225.   drawMode:DrawModeSet;
  226.   leftEdge:INTEGER;
  227.   topEdge:INTEGER;
  228.   iTextFont:TextAttrPtr;
  229.   iText:ADDRESS;
  230.   nextText:IntuiTextPtr;
  231.  END;
  232.  
  233.  Border=RECORD
  234.   leftEdge:INTEGER;
  235.   topEdge:INTEGER;
  236.   frontPen:UByte;
  237.   backPen:UByte;
  238.   drawMode:DrawModeSet;
  239.   count:UByte;
  240.   xy:ADDRESS;
  241.   nextBorder:BorderPtr;
  242.  END;
  243.  
  244.  Image=RECORD
  245.   leftEdge:INTEGER;
  246.   topEdge:INTEGER;
  247.   width:INTEGER;
  248.   height:INTEGER;
  249.   depth:INTEGER;
  250.   imageData:ADDRESS;
  251.   planePick:UByte;
  252.   planeOnOff:UByte;
  253.   nextImage:ImagePtr;
  254.  END;
  255.  
  256.  IDCMPFlags=(
  257.   sizeVerify,newSize,refreshWindow,mouseButtons,mouseMove,
  258.   gadgetDown,gadgetUp,reqSet,menuPick,closeWindow,rawKey,
  259.   reqVerify,reqClear,menuVerify,newPrefs,diskInserted,
  260.   diskRemoved,wbenchMessage,activeWindow,inactiveWindow,
  261.   deltaMove,vanillaKey,intuiTicks,c23,c24,c25,c26,c27,c28,
  262.   c29,c30,lonelyMessage
  263.  );
  264.  IDCMPFlagSet=SET OF IDCMPFlags;
  265.  
  266. CONST
  267.  selectUp=lButton+upPrefix;    (* mouseButtons *)
  268.  selectDown=lButton;
  269.  menuUp=rButton+upPrefix;
  270.  menuDown=rButton;
  271.  menuNull=0FFFFH;              (* menuPick *)
  272.  noMenu=1FH; noItem=3FH; noSub=1FH;
  273.  keyCodeQ=10H;                 (* rawKey *)
  274.  keyCodeX=32H;
  275.  keyCodeV=34H;
  276.  keyCodeB=35H;
  277.  keyCodeN=36H;
  278.  keyCodeM=37H;
  279.  cursorUp=4CH;
  280.  cursorDown=4DH;
  281.  cursorRight=4EH;
  282.  cursorLeft=4FH;
  283.  menuHot=1;                   (* menuVerify *)
  284.  menuCancel=2;
  285.  menuWaiting=3;
  286.  okOk=menuHot;
  287.  okAbort=4;
  288.  okCancel=menuCancel;
  289.  wbenchOpen=1;                   (* wbenchMessage *)
  290.  wbenchClose=2;
  291. (* IntuiMessage.qualifier *)
  292.  altLeft=QualifierSet{lAlt};
  293.  altRight=QualifierSet{rAlt};
  294.  amigaLeft=QualifierSet{lCommand};
  295.  amigaRight=QualifierSet{rCommand};
  296.  amigaKeys=amigaLeft+amigaRight;
  297.  
  298. TYPE
  299.  IntuiMessage=RECORD
  300.   execMessage:Message;
  301.   class:IDCMPFlagSet;
  302.   code:CARDINAL;
  303.   qualifier:QualifierSet;
  304.   iAddress:ADDRESS;
  305.   mouseX:INTEGER;
  306.   mouseY:INTEGER;
  307.   seconds:LONGCARD;
  308.   micros:LONGCARD;
  309.   idcmpWindow:WindowPtr;
  310.   specialLink:IntuiMessagePtr;
  311.  END;
  312.  
  313. TYPE
  314.  WindowFlags=(
  315.   windowSizing,windowDrag,windowDepth,windowClose,sizeBRight,
  316.   sizeBBottom,simpleRefresh,superBitMap,backDrop,reportMouse,
  317.   gimmeZeroZero,borderless,activate,windowActive,inRequest,
  318.   menuState,rmbTrap,noCareRefresh,wf18,wf19,wf20,wf21,wf22,
  319.   wf23,windowRefresh,wbenchWindow,windowTicked,wf27,wf28,
  320.   wf29,wf30,wf31
  321.  );
  322.  WindowFlagSet=SET OF WindowFlags;
  323.  ScreenFlags=(
  324.   wbenchScreen,sf1,sf2,sf3,showTitle,beeping,customBitMap,
  325.   screenBehind,screenQuiet);
  326.  ScreenFlagSet=SET OF ScreenFlags;
  327.  
  328. CONST
  329.  otherRefresh=WindowFlagSet{simpleRefresh,superBitMap};
  330.  superUnused=WindowFlagSet{wf18..wf23,wf27..wf31};
  331.  stdScreenHeight=-1;
  332.  customScreen=ScreenFlagSet{wbenchScreen..sf3};
  333.  
  334. TYPE
  335.  NewWindow=RECORD
  336.   leftEdge:INTEGER;
  337.   topEdge:INTEGER;
  338.   width:INTEGER;
  339.   height:INTEGER;
  340.   detailPen:Byte;
  341.   blockPen:Byte;
  342.   idcmpFlags:IDCMPFlagSet;
  343.   flags:WindowFlagSet;
  344.   firstGadget:GadgetPtr;
  345.   checkMark:ImagePtr;
  346.   title:ADDRESS;
  347.   screen:ScreenPtr;
  348.   bitMap:BitMapPtr;
  349.   minWidth:INTEGER;
  350.   minHeight:INTEGER;
  351.   maxWidth:INTEGER;
  352.   maxHeight:INTEGER;
  353.   type:ScreenFlagSet;
  354.  END;
  355.  NewScreen=RECORD
  356.   leftEdge:INTEGER;
  357.   topEdge:INTEGER;
  358.   width:INTEGER;
  359.   height:INTEGER;
  360.   depth:INTEGER;
  361.   detailPen:Byte;
  362.   blockPen:Byte;
  363.   viewModes:ViewModeSet;
  364.   type:ScreenFlagSet;
  365.   font:TextAttrPtr;
  366.   defaultTitle:ADDRESS;
  367.   gadgets:GadgetPtr;
  368.   customBitMap:BitMapPtr;
  369.  END;
  370.  Window=RECORD
  371.   nextWindow:WindowPtr;
  372.   leftEdge:INTEGER;
  373.   topEdge:INTEGER;
  374.   width:INTEGER;
  375.   height:INTEGER;
  376.   mouseY:INTEGER;
  377.   mouseX:INTEGER;
  378.   minWidth:INTEGER;
  379.   minHeight:INTEGER;
  380.   maxWidth:INTEGER;
  381.   maxHeight:INTEGER;
  382.   flags:WindowFlagSet;
  383.   menuStrip:MenuPtr;
  384.   title:ADDRESS;
  385.   firstRequest:RequesterPtr;
  386.   dmRequest:RequesterPtr;
  387.   reqCount:INTEGER;
  388.   wScreen:ScreenPtr;
  389.   rPort:RastPortPtr;
  390.   borderLeft:Byte;
  391.   borderTop:Byte;
  392.   borderRight:Byte;
  393.   borderBottom:Byte;
  394.   borderRPort:RastPortPtr;
  395.   firstGadget:GadgetPtr;
  396.   parent:WindowPtr;
  397.   descendant:WindowPtr;
  398.   pointer:ADDRESS;
  399.   ptrHeight:Byte;
  400.   ptrWidth:[0..16];
  401.   xOffset:Byte;
  402.   yOffset:Byte;
  403.   idcmpFlags:IDCMPFlagSet;
  404.   userPort:MsgPortPtr;
  405.   windowPort:MsgPortPtr;
  406.   messageKey:IntuiMessagePtr;
  407.   detailPen:UByte;
  408.   blockPen:UByte;
  409.   checkMark:ImagePtr;
  410.   screenTitle:ADDRESS;
  411.   gzzMouseX:INTEGER;
  412.   gzzMouseY:INTEGER;
  413.   gzzWidth:INTEGER;
  414.   gzzHeight:INTEGER;
  415.   extData:ADDRESS;
  416.   userData:ADDRESS;
  417.   wLayer:LayerPtr;
  418.   iFont:TextFontPtr;
  419.  END;
  420.  Screen=RECORD
  421.   nextScreen:ScreenPtr;
  422.   firstWindow:WindowPtr;
  423.   leftEdge:INTEGER;
  424.   topEdge:INTEGER;
  425.   width:INTEGER;
  426.   height:INTEGER;
  427.   mouseY:INTEGER;
  428.   mouseX:INTEGER;
  429.   flags:ScreenFlagSet;
  430.   title:ADDRESS;
  431.   defaultTitle:ADDRESS;
  432.   barHeight:Byte;
  433.   barVBorder:Byte;
  434.   barHBorder:Byte;
  435.   menuVBorder:Byte;
  436.   menuHBorder:Byte;
  437.   wBorTop:Byte;
  438.   wBorLeft:Byte;
  439.   wBorRight:Byte;
  440.   wBorBottom:Byte;
  441.   font:TextAttrPtr;
  442.   viewPort:ViewPort;
  443.   rastPort:RastPort;
  444.   bitMap:BitMap;
  445.   layerInfo:LayerInfo;
  446.   firstGadget:GadgetPtr;
  447.   detailPen:UByte;
  448.   blockPen:UByte;
  449.   saveColor0:CARDINAL;
  450.   barLayer:LayerPtr;
  451.   extData:ADDRESS;
  452.   userData:ADDRESS;
  453.  END;
  454.  
  455. CONST
  456.  filenameSize=30;
  457.  pointerSize=(1+16+1)*2;
  458.  topazEighty=8;
  459.  topazSixty=9;
  460.  
  461. TYPE
  462.  PrinterPort=(parallelPrinter,serialPrinter);
  463.  PrinterType=(
  464.   customName,alphaP101,brother15XL,cbmMps1000,diab630,
  465.   diabAdvD25,diabC150,epson,epsonJX80,okimate20,QumeLP20,
  466.   hpLaserjet,hpLaserjetPlus
  467.  );
  468.  SerParShk=(
  469.   shakeXon,shakeRts,shakeNone,sps3,parityNone,parityEven,
  470.   parityOdd
  471.  );
  472.  SerParShkSet=SET OF SerParShk;
  473.  Preferences=RECORD
  474.   fontHeight:UByte;
  475.   printerPort:PrinterPort;
  476.   baudRate:CARDINAL;
  477.   keyRptSpeed:TimeVal;
  478.   keyRptDelay:TimeVal;
  479.   doubleClick:TimeVal;
  480.   pointerMatrix:ARRAY [0..pointerSize-1] OF CARDINAL;
  481.   xOffset:Byte;
  482.   yOffset:Byte;
  483.   color17:CARDINAL;
  484.   color18:CARDINAL;
  485.   color19:CARDINAL;
  486.   pointerTicks:CARDINAL;
  487.   color0:CARDINAL;
  488.   color1:CARDINAL;
  489.   color2:CARDINAL;
  490.   color3:CARDINAL;
  491.   viewXOffset:Byte;
  492.   viewYOffset:Byte;
  493.   viewInitX:INTEGER;
  494.   viewInitY:INTEGER;
  495.   enableCLI:BOOLEAN;
  496.   pad1:Byte;
  497.   printerType:PrinterType;
  498.   pad2:Byte;
  499.   printerFilename:ARRAY [0..filenameSize-1] OF CHAR;
  500.   printPitch:CARDINAL;
  501.   printQuality:CARDINAL;
  502.   printSpacing:CARDINAL;
  503.   printLeftMargin:CARDINAL;
  504.   printRightMargin:CARDINAL;
  505.   printImage:CARDINAL;
  506.   printAspect:CARDINAL;
  507.   printShade:CARDINAL;
  508.   printThreshold:INTEGER;
  509.   paperSize:CARDINAL;
  510.   paperLength:CARDINAL;
  511.   paperType:CARDINAL;
  512.   serRWBits:UByte;
  513.   serStopBuf:UByte;
  514.   serParShk:SerParShkSet;
  515.   laceWB:BOOLEAN;
  516.   workName:ARRAY [0..filenameSize-1] OF CHAR;
  517.   padding:ARRAY [0..15] OF BYTE;
  518.  END;
  519. CONST
  520.  baud110=0;
  521.  baud300=1;
  522.  baud1200=2;
  523.  baud2400=3;
  524.  baud4800=4;
  525.  baud9600=5;
  526.  baud19200=6;
  527.  baudMidi=7;
  528.  pica=0H;
  529.  elite=0400H;
  530.  fine=0800H;
  531.  draft=0H;
  532.  letter=0100H;
  533.  sixLPI=0H;
  534.  eightLPI=0200H;
  535.  imagePositive=0;
  536.  imageNegative=1;
  537.  aspectHoriz=0;
  538.  aspectVert=1;
  539.  shadeBW=0;
  540.  shadeGreyscale=1;
  541.  shadeColor=2;
  542.  usLetter=0H;
  543.  usLegal=010H;
  544.  nTractor=020H;
  545.  wTractor=030H;
  546.  custom=040H;
  547.  fanfold=0H;
  548.  single=080H;
  549.  readBits=0F0H;
  550.  writeBits=0FH;
  551.  stopBits=0F0H;
  552.  bufSizeBits=0FH;
  553.  buf512=0;
  554.  buf1024=1;
  555.  buf2048=2;
  556.  buf4096=3;
  557.  buf8000=4;
  558.  buf16000=5;
  559.  
  560. TYPE
  561.  Remember=RECORD
  562.   nextRemember:RememberPtr;
  563.   rememberSize:LONGCARD;
  564.   memory:ADDRESS;
  565.  END;
  566.  
  567. CONST
  568.  deadendAlert=80000000H; recoveryAlert=0;
  569.  
  570. TYPE
  571.  DisplayMode=(hiresPick,lowresPick);
  572.  
  573. CONST
  574.  dModeCount=ORD(MAX(DisplayMode))+1;
  575.  eventMax=10;
  576.  
  577. TYPE
  578.  Res=(hiresGadget,lowresGadget);
  579.  
  580. CONST
  581.  resCount=ORD(MAX(Res))+1;
  582.  
  583. TYPE
  584.  Gadgets=(
  585.   upFrontGadget,downBackGadget,sizeGadget,closeGadget,
  586.   dragGadget,sUpFrontGadget,sDownBackGadget,sDragGadget
  587.  );
  588.  
  589. CONST
  590.  gadgetCount=ORD(MAX(Gadgets))+1;
  591.  
  592. TYPE
  593.  ILocks=(
  594.   iStateLock,layerInfoLock,gadgetsLock,layerRomLock,viewLock,
  595.   iBaseLock,rpLock
  596.  );
  597. CONST
  598.  numILocks=ORD(MAX(ILocks))+1;
  599.  
  600. TYPE
  601.  FatIntuiMessage=RECORD
  602.   intuiMessage:IntuiMessage;
  603.   prevKeys:LONGCARD;
  604.  END;
  605.  IBox=RECORD
  606.   left:INTEGER;
  607.   top:INTEGER;
  608.   width:INTEGER;
  609.   height:INTEGER;
  610.  END;
  611.  Point=RECORD
  612.   x:INTEGER;
  613.   y:INTEGER;
  614.  END;
  615.  PenPair=RECORD
  616.   detailPen:UByte;
  617.   blockPen:UByte;
  618.  END;
  619.  GListEnv=RECORD
  620.   screen:ScreenPtr;
  621.   window:WindowPtr;
  622.   requester:RequesterPtr;
  623.   rastPort:RastPortPtr;
  624.   layer:LayerPtr;
  625.   gzzLayer:LayerPtr;
  626.   pens:PenPair;
  627.   domain:IBox;
  628.   gzzDims:IBox;
  629.  END;
  630.  GListEnvPtr=POINTER TO GListEnv;
  631.  GadgetInfo=RECORD
  632.   environ:GListEnvPtr;
  633.   gadget:GadgetPtr;
  634.   box:IBox;
  635.   container:IBox;
  636.   layer:LayerPtr;
  637.   newKnob:IBox;
  638.  END;
  639.  
  640. CONST
  641.  numIEvents=4;
  642.  
  643. TYPE
  644.  IntuitionBase=RECORD
  645.   libNode:Library;
  646.   viewLord:View;
  647.   activeWindow:WindowPtr;
  648.   activeScreen:ScreenPtr;
  649.   firstScreen:ScreenPtr;
  650.   flags:LONGSET;
  651.   mouseY:INTEGER;
  652.   mouseX:INTEGER;
  653.   seconds:LONGCARD;
  654.   micros:LONGCARD;
  655.   minXMouse:INTEGER;
  656.   maxXMouse:INTEGER;
  657.   minYMouse:INTEGER;
  658.   maxYMouse:INTEGER;
  659.   startSecs:LONGCARD;
  660.   startMicros:LONGCARD;
  661.   sysBase:ADDRESS;
  662.   gfxBase:GfxBasePtr;
  663.   layersBase:ADDRESS;
  664.   consoleDevice:ADDRESS;
  665.   aPointer:ADDRESS;
  666.   aPtrHeight:UByte;
  667.   aPtrWidth:[0..16];
  668.   aXOffset:UByte;
  669.   aYOffset:UByte;
  670.   menuDrawn:CARDINAL;
  671.   menuSelected:CARDINAL;
  672.   optionList:CARDINAL;
  673.   menuRPort:RastPort;
  674.   menuTmpRas:TmpRas;
  675.   itemCRect:ClipRect;
  676.   subCRect:ClipRect;
  677.   iBitMap:BitMap;
  678.   sBitMap:BitMap;
  679.   inputRequest:IOStdReq;
  680.   inputInterrupt:Interrupt;
  681.   eventKey:RememberPtr;
  682.   iEvents:ADDRESS;
  683.   eventCount:INTEGER;
  684.   ieBuffer:ARRAY [0..numIEvents-1] OF InputEvent;
  685.   activeGadget:GadgetPtr;
  686.   activePInfo:PropInfoPtr;
  687.   activeImage:ImagePtr;
  688.   gadgetEnv:GListEnv;
  689.   gadgetInfo:GadgetInfo;
  690.   knobOffset:Point;
  691.   getOKWindow:WindowPtr;
  692.   getOKMessage:IntuiMessagePtr;
  693.   setWExcept:CARDINAL;
  694.   gadgetReturn:CARDINAL;
  695.   stateReturn:CARDINAL;
  696.   rp:RastPortPtr;
  697.   iTmpRas:TmpRas;
  698.   oldClipRegion:RegionPtr;
  699.   oldScroll:Point;
  700.   iFrame:IBox;
  701.   hthick:INTEGER;
  702.   vthick:INTEGER;
  703.   frameChange:PROC;
  704.   sizeDrag:PROC;
  705.   firstPt:Point;
  706.   oldPt:Point;
  707.   sysGadgets:ARRAY Res,Gadgets OF GadgetPtr;
  708.   checkImage:ARRAY Res OF ImagePtr;
  709.   amigaIcon:ARRAY Res OF ImagePtr;
  710.   aPattern:ARRAY [0..7] OF CARDINAL;
  711.   bPattern:ARRAY [0..3] OF CARDINAL;
  712.   iPointer:ADDRESS;
  713.   iPtrHeight:UByte;
  714.   iPtrWidth:[0..16];
  715.   iXOffset:UByte;
  716.   iYOffset:UByte;
  717.   doubleSeconds:LONGINT;
  718.   doubleMicros:LONGINT;
  719.   wBorLeft,
  720.   wBorTop,
  721.   wBorRight,
  722.   wBorBottom,
  723.   barVBorder,
  724.   barHBorder,
  725.   menuVBorder,
  726.   menuHBorder:ARRAY DisplayMode OF Byte;
  727.   color0:CARDINAL;
  728.   color1:CARDINAL;
  729.   color2:CARDINAL;
  730.   color3:CARDINAL;
  731.   color17:CARDINAL;
  732.   color18:CARDINAL;
  733.   color19:CARDINAL;
  734.   sysFont:TextAttr;
  735.   preferences:PreferencesPtr;
  736.   echoes:ADDRESS;
  737.   viewInitX:INTEGER;
  738.   viewInitY:INTEGER;
  739.   cursorDX:INTEGER;
  740.   cursorDY:INTEGER;
  741.   keyMap:KeyMapPtr;
  742.   mouseYMinimum:INTEGER;
  743.   errorX:INTEGER;
  744.   errorY:INTEGER;
  745.   ioExcess:IOTimer;
  746.   holdMinYMouse:INTEGER;
  747.   wbPort:MsgPortPtr;
  748.   fnkuhdPort:MsgPortPtr;
  749.   wbMessage:IntuiMessage;
  750.   hitScreen:ScreenPtr;
  751.   simpleSprite:SimpleSpritePtr;
  752.   attachedSSprite:SimpleSpritePtr;
  753.   gotSpritel:BOOLEAN;
  754.   semaphoreList:List;
  755.   iSemaphore:ARRAY ILocks OF SignalSemaphore;
  756.   maxDisplayHeight:INTEGER;
  757.   maxDisplayRow:INTEGER;
  758.   reserved:ARRAY [0..7] OF LONGCARD;
  759.  END;
  760.  IntuitionBasePtr=POINTER TO IntuitionBase;
  761.  
  762. (*
  763.  * Die Prozedure AllocRemember, OpenScreen und OpenWindow
  764.  * haben eine VAR Parameter.
  765.  *)
  766.  
  767. PROCEDURE ActivateGadget(
  768.            gadget{8}:GadgetPtr;
  769.            window{9}:WindowPtr;
  770.            requester{10}:RequesterPtr):BOOLEAN; CODE -462;
  771. PROCEDURE ActivateWindow(window{8}:WindowPtr); CODE -450;
  772. PROCEDURE AddGadget(window{8}:WindowPtr;
  773.                     gadget{9}:GadgetPtr;
  774.                     position{0}:INTEGER):INTEGER; CODE -42;
  775. PROCEDURE AddGList(
  776.            window{8}:WindowPtr;
  777.            gadget{9}:GadgetPtr;
  778.            position{0}:INTEGER;
  779.            numGad{1}:INTEGER;
  780.            requester{10}:RequesterPtr):INTEGER; CODE -438;
  781. PROCEDURE AllocRemember(
  782.            VAR rememberKey{8}:ADDRESS;
  783.            size{0}:LONGCARD;
  784.            flags{1}:MemReqSet):ADDRESS; CODE -396;
  785. PROCEDURE AlohaWorkbench(wbPort{8}:MsgPortPtr); CODE -402;
  786. PROCEDURE AutoRequest(window{8}:WindowPtr;
  787.                       bodyText{9}:IntuiTextPtr;
  788.                       positiveText{10}:IntuiTextPtr;
  789.                       negativeText{11}:IntuiTextPtr;
  790.                       positiveFlags{0}:IDCMPFlagSet;
  791.                       negativeFlags{1}:IDCMPFlagSet;
  792.                       width{2}:INTEGER;
  793.                       height{3}:INTEGER):BOOLEAN; CODE -348;
  794. PROCEDURE BeginRefresh(window{8}:WindowPtr); CODE -354;
  795. PROCEDURE BuildSysRequest(
  796.            window{8}:WindowPtr;
  797.            bodyText{9}:IntuiTextPtr;
  798.            positiveText{10}:IntuiTextPtr;
  799.            negativeText{11}:IntuiTextPtr;
  800.            idcmpFlags{0}:IDCMPFlagSet;
  801.            width{1}:INTEGER;
  802.            height{2}:INTEGER):WindowPtr; CODE -360;
  803. PROCEDURE ClearDMRequest(
  804.            window{8}:WindowPtr):BOOLEAN; CODE -48;
  805. PROCEDURE ClearMenuStrip(window{8}:WindowPtr); CODE -54;
  806. PROCEDURE ClearPointer(window{8}:WindowPtr); CODE -60;
  807. PROCEDURE CloseScreen(screen{8}:ScreenPtr); CODE -66;
  808. PROCEDURE CloseWindow(window{8}:WindowPtr); CODE -72;
  809. PROCEDURE CloseWorkBench():BOOLEAN; CODE -78;
  810. PROCEDURE CurrentTime(seconds{8}:ADDRESS;
  811.                       micros{9}:ADDRESS); CODE -84;
  812. PROCEDURE DisplayAlert(alertNumber{0}:LONGCARD;
  813.                        string{8}:ADDRESS;
  814.                        height{1}:LONGCARD):BOOLEAN; CODE -90;
  815. PROCEDURE DisplayBeep(screen{8}:ScreenPtr); CODE -96;
  816. PROCEDURE DoubleClick(
  817.            startSecs{0}:LONGINT;
  818.            startMicros{1}:LONGINT;
  819.            currentSecs{2}:LONGINT;
  820.            currentMicros{3}:LONGINT):BOOLEAN; CODE -102;
  821. PROCEDURE DrawBorder(rastPort{8}:RastPortPtr;
  822.                      border{9}:BorderPtr;
  823.                      leftOffset{0}:INTEGER;
  824.                      topOffset{1}:INTEGER); CODE -108;
  825. PROCEDURE DrawImage(rastPort{8}:RastPortPtr;
  826.                     image{9}:ImagePtr;
  827.                     leftOffset{0}:INTEGER;
  828.                     topOffset{1}:INTEGER); CODE -114;
  829. PROCEDURE EndRefresh(window{8}:WindowPtr;
  830.                      complete{0}:BOOLEAN); CODE -366;
  831. PROCEDURE EndRequest(requester{8}:RequesterPtr;
  832.                      window{9}:WindowPtr); CODE -120;
  833. PROCEDURE FreeRemember(rememberKey{8}:ADDRESS;
  834.                        reallyForget{0}:BOOLEAN); CODE -408;
  835. PROCEDURE FreeSysRequest(window{8}:WindowPtr); CODE -372;
  836. PROCEDURE GetDefPrefs(prefBuffer{8}:PreferencesPtr;
  837.                       size{0}:INTEGER); CODE -126;
  838. PROCEDURE GetPrefs(prefBuffer{8}:PreferencesPtr;
  839.                    size{0}:INTEGER); CODE -132;
  840. PROCEDURE GetScreenData(
  841.            buffer{8}:ADDRESS;
  842.            size{0}:CARDINAL;
  843.            type{1}:ScreenFlagSet;
  844.            screen{9}:ScreenPtr):BOOLEAN; CODE -426;
  845. PROCEDURE InitRequester(requester{8}:RequesterPtr); CODE -138;
  846. PROCEDURE IntuiTextLength(
  847.            iText{8}:IntuiTextPtr):INTEGER; CODE -330;
  848. PROCEDURE Intuition(inputEvent{8}:InputEventPtr); CODE -36;
  849. PROCEDURE ItemAddress(
  850.            menuStrip{8}:MenuPtr;
  851.            menuNumber{0}:CARDINAL):MenuItemPtr; CODE -144;
  852. PROCEDURE LockIBase(
  853.            lockNumber{0}:LONGCARD):LONGCARD; CODE -414;
  854. PROCEDURE MakeScreen(screen{8}:ScreenPtr); CODE -378;
  855. PROCEDURE ModifyIDCMP(window{8}:WindowPtr;
  856.                       idcmpFlags{0}:IDCMPFlagSet); CODE -150;
  857. PROCEDURE ModifyProp(gadget{8}:GadgetPtr;
  858.                      window{9}:WindowPtr;
  859.                      requester{10}:RequesterPtr;
  860.                      flags{0}:PropInfoFlagSet;
  861.                      horizPot{1}:CARDINAL;
  862.                      vertPot{2}:CARDINAL;
  863.                      horizBody{3}:CARDINAL;
  864.                      vertBody{4}:CARDINAL); CODE -156;
  865. PROCEDURE MoveScreen(screen{8}:ScreenPtr;
  866.                      deltaX{0}:INTEGER;
  867.                      deltaY{1}:INTEGER); CODE -162;
  868. PROCEDURE MoveWindow(window{8}:WindowPtr;
  869.                      deltaX{0}:INTEGER;
  870.                      deltaY{1}:INTEGER); CODE -168;
  871. PROCEDURE NewModifyProp(gadget{8}:GadgetPtr;
  872.                         window{9}:WindowPtr;
  873.                         requester{10}:RequesterPtr;
  874.                         flags{0}:PropInfoFlagSet;
  875.                         horizPot{1}:CARDINAL;
  876.                         vertPot{2}:CARDINAL;
  877.                         horizBody{3}:CARDINAL;
  878.                         vertBody{4}:CARDINAL;
  879.                         numGad{5}:INTEGER); CODE -468;
  880. PROCEDURE OffGadget(gadget{8}:GadgetPtr;
  881.                     window{9}:WindowPtr;
  882.                     requester{10}:RequesterPtr); CODE -174;
  883. PROCEDURE OffMenu(window{8}:WindowPtr;
  884.                   menuNumber{0}:CARDINAL); CODE -180;
  885. PROCEDURE OnGadget(gadget{8}:GadgetPtr;
  886.                    window{9}:WindowPtr;
  887.                    requester{10}:RequesterPtr); CODE -186;
  888. PROCEDURE OnMenu(window{8}:WindowPtr;
  889.                  menuNumber{0}:CARDINAL); CODE -192;
  890. PROCEDURE OpenIntuition():IntuitionBasePtr; CODE -30;
  891. PROCEDURE OpenScreen(
  892.            VAR newScreen{8}:NewScreen):ScreenPtr; CODE -198;
  893. PROCEDURE OpenWindow(
  894.            VAR newWindow{8}:NewWindow):WindowPtr; CODE -204;
  895. PROCEDURE OpenWorkBench():ScreenPtr; CODE -210;
  896. PROCEDURE PrintIText(rastPort{8}:RastPortPtr;
  897.                      iText{9}:IntuiTextPtr;
  898.                      leftOffset{0}:INTEGER;
  899.                      topOffset{1}:INTEGER); CODE -216;
  900. PROCEDURE RefreshGadgets(
  901.            gadgets{8}:GadgetPtr;
  902.            window{9}:WindowPtr;
  903.            requester{10}:RequesterPtr); CODE -222;
  904. PROCEDURE RefreshGList(gadgets{8}:GadgetPtr;
  905.                        window{9}:WindowPtr;
  906.                        requester{10}:RequesterPtr;
  907.                        numGad{0}:INTEGER); CODE -432;
  908. PROCEDURE RefreshWindowFrame(window{8}:WindowPtr); CODE -456;
  909. PROCEDURE RemakeDisplay(); CODE -384;
  910. PROCEDURE RemoveGadget(
  911.            window{8}:WindowPtr;
  912.            gadget{9}:GadgetPtr):INTEGER; CODE -228;
  913. PROCEDURE RemoveGList(window{8}:WindowPtr;
  914.                       gadget{9}:GadgetPtr;
  915.                       numgad{0}:INTEGER):INTEGER; CODE -444;
  916. PROCEDURE ReportMouse(window{8}:WindowPtr;
  917.                       boolean{0}:BOOLEAN); CODE -234;
  918. PROCEDURE Request(requester{8}:RequesterPtr;
  919.                   window{9}:WindowPtr):BOOLEAN; CODE -240;
  920. PROCEDURE RethinkDisplay(); CODE -390;
  921. PROCEDURE ScreenToBack(screen{8}:ScreenPtr); CODE -246;
  922. PROCEDURE ScreenToFront(screen{8}:ScreenPtr); CODE -252;
  923. PROCEDURE SetDMRequest(
  924.            window{8}:WindowPtr;
  925.            dmRequester{9}:RequesterPtr):BOOLEAN; CODE -258;
  926. PROCEDURE SetMenuStrip(window{8}:WindowPtr;
  927.                        menu{9}:MenuPtr):BOOLEAN; CODE -264;
  928. PROCEDURE SetPointer(window{8}:WindowPtr;
  929.                      pointer{9}:ADDRESS;
  930.                      height{0}:INTEGER;
  931.                      width{1}:INTEGER;
  932.                      xOffset{2}:INTEGER;
  933.                      yOffset{3}:INTEGER); CODE -270;
  934. PROCEDURE SetPrefs(prefBuffer{8}:PreferencesPtr;
  935.                    Size{0}:INTEGER;
  936.                    Inform{1}:BOOLEAN); CODE -324;
  937. PROCEDURE SetWindowTitles(
  938.            window{8}:WindowPtr;
  939.            windowTitle{9}:ADDRESS;
  940.            screenTitle{10}:ADDRESS); CODE -276;
  941. PROCEDURE ShowTitle(screen{8}:ScreenPtr;
  942.                     showIt{0}:BOOLEAN); CODE -282;
  943. PROCEDURE SizeWindow(window{8}:WindowPtr;
  944.                      deltaX{0}:INTEGER;
  945.                      deltaY{1}:INTEGER); CODE -288;
  946. PROCEDURE UnlockIBase(lock{8}:LONGCARD); CODE -420;
  947. PROCEDURE ViewAddress():ViewPtr; CODE -294;
  948. PROCEDURE ViewPortAddress(
  949.            window{8}:WindowPtr):ViewPortPtr; CODE -300;
  950. PROCEDURE WBenchToBack():BOOLEAN; CODE -336;
  951. PROCEDURE WBenchToFront():BOOLEAN; CODE -342;
  952. (*
  953.  * Den Paramentern maxWidth und maxHeight darf man auch den
  954.  * Wert -1 zuweisen, falls man die Window Grösse nicht
  955.  * beschränken will. Damit dies nicht zu einem Laufzeitfehler
  956.  * führt wurden diese Parameter im Gegensatz zu den
  957.  * C Deklarationen als INTEGER und nicht als CARDINAL
  958.  * deklariert.
  959.  *)
  960. PROCEDURE WindowLimits(
  961.            window{8}:WindowPtr;
  962.            minWidth{0}:INTEGER;
  963.            minHeight{1}:INTEGER;
  964.            maxWidth{2}:INTEGER;
  965.            maxHeight{3}:INTEGER):BOOLEAN; CODE -318;
  966. PROCEDURE WindowToBack(window{8}:WindowPtr); CODE -306;
  967. PROCEDURE WindowToFront(window{8}:WindowPtr); CODE -312;
  968.  
  969. END Intuition.
  970.